People want mobile devices to be able to do many things at once, such as browse the web, play music, notify them of certain events, and so forth. No single application can practically accomplish the many possible tasks, so mobile devices are configured with several distinct applications, as well as with the ability to download more applications from “third-party” application vendors (including when the vendor is the same entity as the “first party” provider of the mobile device).
At present, applications are run separately on mobile devices, (in contrast to relatively high-powered computing devices such as PCs where they may be run in parallel). It is desirable to run applications “at the same time” on mobile devices as well, in order to give the user a more desirable experience. This is problematic for a resource-constrained device such as a mobile device, given its computing power, limited screen real-estate, battery, network bandwidth, and so on.
Various approaches have been taken to this in the past. Like traditional desktop operating systems, some mobile operating systems simply run the various applications in parallel, assuming that system has sufficient resources to accomplish all active tasks and that the user can manage the user experience (UX, including user interface or UI) issues. This tends to lead to poor user experiences, as glitches and other problems occur when resources are not sufficient. Other platforms allow one or more applications to continue executing even after the user has switched away from them, but they provide no guarantees about continuity (quality) of service; e.g., if resources start to run out, applications are terminated.